/*
 * Sender.cpp
 *
 *  Created on: Oct 23, 2011
 *      Author: gonzalo
 */

#include "Sender.h"
#include "../DTOBackground.h"
#include "../DTOCliente.h"



Sender::Sender(unsigned int port,ColaMensajes* mensajes) :
Conexion(port,mensajes){
}

Sender::Sender(unsigned int port,std::string host,ColaMensajes* mensajes)
: Conexion(port,host,mensajes){
}


Sender::Sender(SocketProtocoloPlano* socket,ColaMensajes* mensajes)
: Conexion(socket,mensajes) {
}

Sender::~Sender() {
}

int Sender::enviar(DTO* dto){
	return this->conexionEnviar(dto);
}


void Sender::terminar(){
	this->terminarSocket();
}

bool Sender::estaConectado(){
	return Conexion::estaConectado();
}

void* Sender::run(){
	actualizarSockets();

	while(estaConectado()){
		DTO* dto = mensajes->getMensaje();

		if (dto == NULL) {
			continue;
		}

		//Si hay un broken pipe
		if (conexionEnviar(dto) == SOCKET_ERROR){
			this->conectado = false;
		}

	}


	return NULL;
}
